package com.example.studentknowledgesys.service;

import com.example.studentknowledgesys.controller.ArticleController;
import com.example.studentknowledgesys.dto.ArticleDetailDTO;
import com.example.studentknowledgesys.entity.Article;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

/**
 * @author 光的代言人
 */
public interface ArticleService {
    // 创建文章
    Article createArticle(Article article);

    @Transactional
    ArticleController.ArticleResponse createArticle(ArticleController.ArticleRequest request);

    // 更新文章
    Article updateArticle(Article article);
    // 更新文章状态
    boolean updateArticleStatus(Long id, Integer status);

    // 删除文章
    boolean deleteArticle(Long id);

    // 获取文章详情
    Article getArticleById(Long id);

    // 获取所有文章
    List<Article> getAllArticles();

    // 根据标签获取文章
    List<Article> getArticlesByTag(Long tagId);

    List<ArticleDetailDTO> getArticleDetails(String tagName,Long authorId);

    ArticleDetailDTO  getArticleDetail(Long articleId);
    int updateArticleById(Article article);


}
